package com.foxit.pdf2html5.common.intergration;

import java.io.Serializable;

/**
 * @author Shaojie Zhuo
 * @version 1.0
 * Base document class.
 */
public abstract class BaseDocument implements Serializable {
	private static final long serialVersionUID = 7775357024701803143L;

	/**
	 * Get id of document.
	 * @return Document id.
	 */
	public abstract String getDocumentID();
	
	/**
	 * Get name of document.
	 * @return Name of document.
	 */
	public abstract String getFileName();
	
	/**
	 * Get rights of document. 
	 * @see DocumentRights
	 * @return Document rights.
	 */
	public abstract long DocRights();
	
	/**
	 * Get version of document.
	 * @return document version.
	 */
	public abstract String getVersion();
	
	/**
	 * Get user of document.
	 * @return user of document.
	 */
	public abstract BaseUser getUser();
	
	/**
	 * Set user of document, and get document rights of the user. 
	 * @param user user of document.
	 */
	public abstract void setUser(BaseUser user);
	
	/**
	 * Get hash of document.
	 * @return hash of document.
	 */
	public abstract String getDocHash();
	
}
